package com.hwadee.backend.entity.HealthRecord;

import lombok.Getter;
import lombok.Setter;

import java.sql.Date;

/**
 * 用药记录实体类，继承自 HealthRecord 类，用于存储用药相关的详细信息。
 */
@Setter
@Getter
public class MedicationRecord extends HealthRecord {
    // 用药原因
    private String medicationReason;
    // 药品名称
    private String medicationName;
    // 用法用量
    private String usageAndDosage;
    // 用药结果
    private String medicationResult;
    // 药物副作用
    private String drugSideEffects;
    // 备注
    private String remarks;

    // 无参构造函数
    public MedicationRecord() {
    }

    /**
     * 有参构造函数
     * @param recordId 记录 ID
     * @param recordDate 记录日期
     * @param recordType 记录类型
     * @param detail 用药详情，包含用药原因、药品名称、用法用量、用药结果、药物副作用和备注，用|分隔
     */
    public MedicationRecord(int recordId, Date recordDate, String recordType, String detail) {
        super(recordId, recordDate, recordType, detail);
        // 调用拆分详情的方法
        splitDetail(detail);
        super.setDetail(null); // 将 detail 置为空值
    }

    /**
     * 将用药详情按中文句号拆分为用药原因、药品名称、用法用量、用药结果、药物副作用和备注
     * @param detail 用药详情，包含用药原因、药品名称、用法用量、用药结果、药物副作用和备注，用|分隔
     */
    private void splitDetail(String detail) {
        // 按中文句号拆分字符串，注意这里原代码正则有问题，应转义特殊字符，假设实际是按|分割
        String[] parts = detail.split("\\|");
        if (parts.length >= 1) {
            this.medicationReason = parts[0];
        }
        if (parts.length >= 2) {
            this.medicationName = parts[1];
        }
        if (parts.length >= 3) {
            this.usageAndDosage = parts[2];
        }
        if (parts.length >= 4) {
            this.medicationResult = parts[3];
        }
        if (parts.length >= 5) {
            this.drugSideEffects = parts[4];
        }
        if (parts.length >= 6) {
            this.remarks = parts[5];
        }
    }


}